-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
backtrace: special case classloader path #140
Conversation
c028fe3
to
2de0432
Compare
# rubocop:enable Metrics/LineLength | ||
end | ||
|
||
let(:parsed_backtrace) do | ||
# rubocop:disable Metrics/LineLength | ||
[{ file: 'uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/protocol.rb', line: 158, function: 'uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.net.protocol.rbuf_fill' }, | ||
{ file: 'bin/processors/image_uploader.rb', line: 21, function: 'bin.processors.image_uploader.block in make_streams' }] | ||
{ file: 'bin/processors/image_uploader.rb', line: 21, function: 'bin.processors.image_uploader.block in make_streams' }, | ||
{ file: 'uri_3a_classloader_3a_/gems/faye_minus_websocket_minus_0_dot_10_dot_5/lib/faye/websocket/uri:classloader:/gems/faye-websocket-0.10.5/lib/faye/websocket/api.rb', line: 109, function: 'uri_3a_classloader_3a_.gems.faye_minus_websocket_minus_0_dot_10_dot_5.lib.faye.websocket.api.invokeOther13:dispatch_event' }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like this should be
file: /gems/faye-websocket-0.10.5/lib/faye/websocket/api.rb
function: dispatch_event
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really know whether the Java classloader stuff is useful, so I guess safe to leave as is. Are you sure it's gibberish?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am sure that user wants what I posted. If Java classloader stuff is not useful then it is not clear why we are parsing it at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool, I'll change it. We are parsing it because I don't want to leave out potentially useful information.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the file change makes sense, but the function change isn't obvious how to parse.
Consider:
-
https://github.com/airbrake/airbrake-ruby/blob/master/spec/backtrace_spec.rb#L83
block
is not a function there, and returningmake_stream
would be confusing. We should return the whole string -
https://github.com/airbrake/airbrake-ruby/blob/master/spec/spec_helper.rb#L70-L72
This carries package name information, which is rather useful in my opinion.
-
https://github.com/airbrake/airbrake-ruby/blob/master/spec/spec_helper.rb#L69
A
$
probably means something special, so I think it makes sense to return the whole string.
These backtraces are so random that in order to parse them super precisely, we would need a complex regexp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I dont insist and we can revisit when JRuby users show up.
https://github.com/airbrake/airbrake-ruby/blob/master/spec/backtrace_spec.rb#L83
should be "block in make_streams", because "bin.processors.image_uploader" is generated from file
2de0432
to
77b8d55
Compare
Fixes #139 (Found parsing error in my logs)
LGTM, though build fails |
77b8d55
to
1c3db60
Compare
Fixed build. |
Fixes #139 (Found parsing error in my logs)